package com.bao.demo.flower;

import java.util.Scanner;

public class FlowerMgr {
    public static final Scanner INPUT=new Scanner(System.in);
    public static FlowerOrder[] flowers=new FlowerOrder[10];
    static {
        flowers[0]=new FlowerOrder("1001","金色落叶花",10,555.0,"2024-7-14","湖北近","");
        flowers[1]=new FlowerOrder("1002","失色落叶花",20,1110.0,"2024-7-14","湖南近","");
        flowers[2]=new FlowerOrder("1003","影轮草    ",5,555.0,"2024-7-14","湖北远","");
        flowers[3]=new FlowerOrder("1004","血蔷薇    ",999,999.0,"2024-7-14","湖南远","");
        flowers[4]=new FlowerOrder("1005","罗亚果实  ",999,9990.0,"2024-7-14","小马","");
    }

    public static void main(String[] args) {


        while (true){
            System.out.println("====================欢迎光临“七彩鲜花”销售管理系统====================");
            System.out.println("1.查询订单");
            System.out.println("2.修改订单");
            System.out.println("3.删除订单");
            System.out.println("4.退出系统");
            System.out.println("==================================================================");
            System.out.println("请输入操作");
            int order= INPUT.nextInt();
            switch(order){
                case 1://查询
                    findAll();
                    break;
                case 2://修改
                    update();
                    break;
                case 3://删除
                    delete();
                    break;
                default://退出
                    System.err.println("退出系统");
                    return;
            }
        }
    }

    /**
     * 用于打印指定flower对象
     * @param flowers 需要打印的对象
     */
    public static void printFlowers(FlowerOrder flowers){
        System.out.print(flowers.getId()+"\t");
        System.out.print(flowers.getName()+"\t");
        System.out.print(flowers.getNum()+"\t");
        System.out.print(flowers.getPrice()+"\t");
        System.out.print(flowers.getDate()+"\t");
        System.out.print(flowers.getEmp()+"\t");
        System.out.print(flowers.getDep()+"\n");
    }
    /**
     * 查询功能
     */
    public static void findAll(){
        int i=0;
        System.out.println("商品编号\t鲜花名称\t  销售数量 价格\t  销售日期  \t销售员\t备注");
        while(flowers[i]!=null){
            printFlowers(flowers[i]);
            i++;
        }
        System.out.println("\n");


    }
    /**
     * 修改功能的总体
     */
    public static void update(){
       System.out.println("请输入想要修改的商品编号");
       String uid=INPUT.next();
       int Index=select(uid);
       if (Index<0){
           return;
       }
        System.out.println("您要修改的商品信息如下：");
        System.out.println("商品编号\t鲜花名称\t  销售数量 价格\t  销售日期  \t销售员\t备注");
        printFlowers(flowers[Index]);
        FlowerOrder tempFlower=updateValues(uid);
        if(tempFlower==null){
            return;
        }
        flowers[Index]=tempFlower;
        System.out.println("修改后的商品信息为：");
        findAll();

    }
    /**
     * 用于输入修改的信息
     * @param Id 商品id
     * @return 修改后的商品，如果为空，则是取消修改
     *
     */
    public static FlowerOrder updateValues(String Id){
        System.out.println("请输入鲜花名称");
        String newName=INPUT.next();
        System.out.println("请输入销售数量");
        int newNum=INPUT.nextInt();
        System.out.println("请输入价格");
        double newPrice=INPUT.nextDouble();
        System.out.println("请输入销售日期（yyyy-MM-dd）");
        String newDate=INPUT.next();
        System.out.println("请输入销售员姓名");
        String newEmp=INPUT.next();
        System.out.println("请输入备注");
        String newDep=INPUT.next();
        FlowerOrder newFlower=new FlowerOrder(Id,newName,newNum,newPrice,newDate,newEmp,newDep);
        System.out.println("您修改后的商品信息如下：");
        System.out.println("商品编号\t鲜花名称\t  销售数量 价格\t  销售日期  \t销售员\t备注");
        printFlowers(newFlower);
        System.out.println("是否确认修改？（y/n）");
        String flag=INPUT.next();
        if("y".equals(flag)){
            return newFlower;
        }else return null;


    }
    /**
     * 用于查询指定编号的下标
     * @param uid 需要查找的商品编号
     * @return 找到的数组下标，-1为空
     */
    public static int select(String uid){
        int Index=0;
        while(flowers[Index]!=null){
            if(flowers[Index].getId().equals(uid)){
                return Index;
            }
            Index++;
        }
            System.err.println("没有找到商品编号为"+uid+"的商品信息");
            System.err.println("退出功能");
            return -1;
    }
    /**
     * 删除功能
     */
    public static void delete(){
        if(flowers[0]==null){
            System.err.println("商品信息为空");
            return;
        }
        System.out.println("请输入想要删除的商品编号");
        String uid=INPUT.next();
        int Index=select(uid);
        if (Index<0){
            return;
        }
        System.out.println("您要删除的商品信息如下：");
        System.out.println("商品编号\t鲜花名称\t  销售数量 价格\t  销售日期  \t销售员\t备注");
        printFlowers(flowers[Index]);
        System.out.println("是否确认删除？（y/n）");
        String flag=INPUT.next();
        if("y".equals(flag)){
            delete(Index);
            System.out.println("删除成功");
            System.out.println("您删除后的商品信息如下：");
            findAll();
        }
        else {
            System.err.println("退出功能");
        }

    }
    /**
     * 删除指定下标的元素
     * @param Index 需要删除的下标
     */
    public static void delete(int Index){
        flowers[Index]=null;
        int i=Index;
        while(flowers[i+1]!=null){
            flowers[i]=flowers[i+1];
            i++;
        }
        flowers[i]=null;
    }
}
